home *** CD-ROM | disk | FTP | other *** search
/ NOVA - For the NeXT Workstation / NOVA - For the NeXT Workstation.iso / SourceCode / AdobeExamples / NX_ImportAdv / epsfstruct.h < prev    next >
Text File  |  1992-12-19  |  4KB  |  107 lines

  1.  
  2. /*
  3.  * (a)  (C) 1990 by Adobe Systems Incorporated. All rights reserved.
  4.  *
  5.  * (b)  If this Sample Code is distributed as part of the Display PostScript
  6.  *    System Software Development Kit from Adobe Systems Incorporated,
  7.  *    then this copy is designated as Development Software and its use is
  8.  *    subject to the terms of the License Agreement attached to such Kit.
  9.  *
  10.  * (c)  If this Sample Code is distributed independently, then the following
  11.  *    terms apply:
  12.  *
  13.  * (d)  This file may be freely copied and redistributed as long as:
  14.  *    1) Parts (a), (d), (e) and (f) continue to be included in the file,
  15.  *    2) If the file has been modified in any way, a notice of such
  16.  *      modification is conspicuously indicated.
  17.  *
  18.  * (e)  PostScript, Display PostScript, and Adobe are registered trademarks of
  19.  *    Adobe Systems Incorporated.
  20.  * 
  21.  * (f) THE INFORMATION BELOW IS FURNISHED AS IS, IS SUBJECT TO
  22.  *    CHANGE WITHOUT NOTICE, AND SHOULD NOT BE CONSTRUED
  23.  *    AS A COMMITMENT BY ADOBE SYSTEMS INCORPORATED.
  24.  *    ADOBE SYSTEMS INCORPORATED ASSUMES NO RESPONSIBILITY
  25.  *    OR LIABILITY FOR ANY ERRORS OR INACCURACIES, MAKES NO
  26.  *    WARRANTY OF ANY KIND (EXPRESS, IMPLIED OR STATUTORY)
  27.  *    WITH RESPECT TO THIS INFORMATION, AND EXPRESSLY
  28.  *    DISCLAIMS ANY AND ALL WARRANTIES OF MERCHANTABILITY, 
  29.  *    FITNESS FOR PARTICULAR PURPOSES AND NONINFRINGEMENT
  30.  *    OF THIRD PARTY RIGHTS.
  31.  */
  32.  
  33. /*
  34.  *    epsfstruct.h
  35.  *
  36.  *    This file contains the structure that is shared between the parser
  37.  *    and the invoker of the parser. It holds a pointer to the data, a float
  38.  *    array for the bounding box and pointers to the fonts lists. The fonts
  39.  *    lists are a block of char pointers to the font names. The block ends
  40.  *    with a null pointer. (When freeing, free each font name pointer then
  41.  *    free the block that held the pointers.)
  42.  *
  43.  *    This file also contains the definitions for the error codes.
  44.  *
  45.  *    Version:    2.0
  46.  *    Author:    Ken Fromm
  47.  *    History:
  48.  *            03-19-91        Added this comment.
  49.  *            03-28-91        Removed the resources part to a separate file.
  50.  */
  51.  
  52. #import  <objc/objc.h>
  53. #import  <objc/hashtable.h>
  54. #import "resources.h"
  55.  
  56. #define EPSF_MAXCOMMENTSUB        40    
  57. #define EPSF_MAXCOMMENT            100
  58. #define EPSF_MAXLINE                255
  59.  
  60. #define InclusionDescription                "{%*i}"
  61.  
  62. typedef struct _Inclusion {
  63.     NXAtom        filename;            /* Name of the file. */
  64.     int            offset;            /* Offset of the %%IncludeFile comment. */
  65.     int            len;                /* Length of the %%IncludeFile comment. */
  66. } Inclusion;
  67.  
  68. typedef struct _EpsfStruct {
  69.     char                *data;
  70.     char                *enddata;
  71.     char                *filedata;
  72.     int                filelen;            
  73.     float                bbox[4];
  74.     Resource        resources[RES_NUMTYPES];
  75.     id                inclusions;
  76. }  EpsfStruct;
  77.  
  78.  
  79. /* The header for an eps binary file */
  80. #define  EPSF_BINARYID                0xC5D0D3C6
  81. #define  EPSF_BINARYCHECKSUM        0xFFFFFFFF
  82. typedef struct _EpsfBinaryHeader {
  83.     long        idbytes,            /* Should be 0xC5D0D3C6 */
  84.             ps_start,            /* Byte position of PostScript section */
  85.             ps_length,        /* Byte length of PostScipt section */
  86.             meta_start,        /* Byte position of Metafile section */
  87.             meta_length,        /* Byte length of Metafile section */
  88.             tiff_start,            /* Byte position of TIFF section */
  89.             tiff_length;        /* Byte length of TIFF section */
  90.  
  91.     long        checksum;        /* Checksum of header */
  92. }  EpsfBinaryHeader;
  93.  
  94.  
  95. /* EPSF error definitions */
  96. #define EPSF_OK                        0
  97. #define EPSF_INVALIDPS                1
  98. #define EPSF_INVALIDPAGECOUNT        2
  99. #define EPSF_INVALIDBBOX            3
  100. #define EPSF_INVALIDDOCUMENT        4
  101. #define EPSF_ENDFILE                5
  102. #define EPSF_WRITEERROR            6
  103. #define EPSF_UNDEFINED                7
  104.  
  105. #define EPSF_ERRORCOUNT            (EPSF_UNDEFINED)
  106.  
  107.